// models/user_article_collect_model.go
// =============================================================================
// | 包: models                                                              |
// | 功能: 定义应用程序的数据模型，映射数据库表结构                           |
// =============================================================================
package models

import "time"

// =============================================================================
// | 结构体: UserArticleCollectModel                                         |
// | 功能: 用户文章收藏关系数据模型                                          |
// | 说明: 映射数据库中的用户文章收藏关系表，记录用户收藏的文章及其所属收藏夹 |
// |----------------------------------------------------------------------------|
// | 字段: UserID - uint - 用户ID，收藏文章的用户唯一标识                     |
// | 字段: UserModel - UserModel - 收藏用户信息，不JSON序列化                 |
// | 字段: ArticleID - uint - 文章ID，被收藏文章的唯一标识                    |
// | 字段: ArticleModel - ArticleModel - 被收藏文章信息，不JSON序列化          |
// | 字段: CollectID - uint - 收藏夹ID，文章所属收藏夹的唯一标识               |
// | 字段: CollectModel - CollectModel - 收藏夹信息，JSON序列化               |
// | 字段: CreatedAt - time.Time - 收藏时间，记录用户收藏文章的时间点         |
// =============================================================================
type UserArticleCollectModel struct {
	UserID       uint         `gorm:"uniqueIndex:idx_name" json:"userID"`
	UserModel    UserModel    `gorm:"foreignKey:UserID" json:"-"`
	ArticleID    uint         `gorm:"uniqueIndex:idx_name" json:"articleID"`
	ArticleModel ArticleModel `gorm:"foreignKey:ArticleID" json:"-"`
	CollectID    uint         `gorm:"uniqueIndex:idx_name" json:"collectID"`
	CollectModel CollectModel `gorm:"foreignKey:CollectID" json:"collectModel"` // 属于哪一个收藏夹
	CreatedAt    time.Time    `json:"createdAt"`                                // 收藏的时间
}
